﻿using Shop.Base.Entity.Insert;
using Shop.Base.Entity.Select;
using Shop.Base.Entity.Update;
using Shop.Entity;

namespace Shop.Base.Entity.AutoMapperConfig
{
    public class SystemBaseProfile : AutoMapperBase
    {
        public SystemBaseProfile()
        {

            #region SystemUser 系统用户

            CreateMap<SystemUserPo, ComUser>().AfterMap((s, n) =>
            {
                n.UserName = s.Name;
            });
            CreateMap<SystemUserPo, ShowSystemUser>().AfterMap((s, n) =>
            {
                n.CreateAt = $"{s.CreateAt:yyyy-MM-dd}";
                if (s.UpdateAt.HasValue)
                    n.UpdateAt = $"{s.UpdateAt:yyyy-MM-dd}";
            });
            CreateMap<SystemUserPo, AddSystemUser>();
            CreateMap<SystemUserPo, UpdateSystemUser>();

            #endregion

            #region SystemButton 系统按钮

            CreateMap<SystemButtonPo, ShowSystemButton>().AfterMap((s, n) =>
            {
                n.CreateAt = $"{s.CreateAt:yyyy-MM-dd}";
                if (s.UpdateAt.HasValue)
                    n.UpdateAt = $"{s.UpdateAt:yyyy-MM-dd}";
            });
            CreateMap<SystemButtonPo, AddSystemButton>();
            CreateMap<SystemButtonPo, UpdateSystemButton>();

            #endregion

            #region SystemButton 系统菜单

            CreateMap<SystemMenuPo, ShowSystemMenu>().AfterMap((s, n) =>
            {
                n.CreateAt = $"{s.CreateAt:yyyy-MM-dd}";
                if (s.UpdateAt.HasValue)
                    n.UpdateAt = $"{s.UpdateAt:yyyy-MM-dd}";
            });
            CreateMap<SystemMenuPo, AddSystemMenu>();
            CreateMap<SystemMenuPo, UpdateSystemMenu>();

            #endregion

            #region SystemMenuButton 系统菜单按钮

            CreateMap<SystemMenuButtonPo, ShowSystemMenuButton>();
            CreateMap<SystemMenuButtonPo, AddSystemMenuButton>();
            CreateMap<SystemMenuButtonPo, UpdateSystemMenuButton>();
            CreateMap<ShowSystemMenuButton, AddSystemMenuButton>();

            #endregion

            #region SystemMenuButton 系统角色

            CreateMap<SystemRolePo, ShowSystemRole>().AfterMap((s, n) =>
            {
                n.CreateAt = $"{s.CreateAt:yyyy-MM-dd}";
                if (s.UpdateAt.HasValue)
                    n.UpdateAt = $"{s.UpdateAt:yyyy-MM-dd}";
            });
            CreateMap<SystemRolePo, AddSystemRole>();
            CreateMap<SystemRolePo, UpdateSystemRole>();

            #endregion
            #region SystemRoleFunction 系统角色菜单按钮

            CreateMap<SystemRoleFunctionPo, ShowSystemRoleFunction>();
            CreateMap<SystemRoleFunctionPo, AddSystemRoleFunction>();
            CreateMap<SystemRoleFunctionPo, UpdateSystemRoleFunction>();

            #endregion

            #region ShopBaseKeyword 商城搜索关键词

            CreateMap<ShopBaseKeywordPo, ShowShopBaseKeyword>().AfterMap((s, n) =>
            {
                n.CreateAt = $"{s.CreateAt:yyyy-MM-dd}";
                if (s.UpdateAt.HasValue)
                    n.UpdateAt = $"{s.UpdateAt:yyyy-MM-dd}";
            });
            CreateMap<ShopBaseKeywordPo, AddShopBaseKeyword>();
            CreateMap<ShopBaseKeywordPo, UpdateShopBaseKeyword>();

            #endregion
        }
    }
}
